var readline = require('readline-sync')
readline.setDefaultOptions({ prompt: '' })
var readline = readline.prompt
let t = parseInt(readline()) // 读取t
for (let i = 0; i < t; i++) {
  let [n, k] = readline().split(' ').map((item) => parseInt(item)) // 转成数字  n 表示多少个数 k表示要操作几次
  let arr = readline().split(' ').map((item) => parseInt(item)) // 转成数组
  let res = 0
  let map = new Map()
  for (let j = 0; j < arr.length; j++) {
    if (!map.get(arr[j])) { // 如果没有这个 
      map.set(arr[j], true) // 把这个设置为true
    } else {
      res++ // 说明这个重复了
    }
  }
  if (k >= res) { // 如果这个大于重复的个数
    console.log('Yes')
  } else {
    console.log('No')
  }
}

var readline = require('readline');
const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout,
  terminal: false
});
var f = -1;// 初始状态为负数，表示还没开始读取
let n, k, arr, count = 0;
rl.on('line', function (line) { // javascript每行数据的回调接口
  if (f < 0) { // 测试用例第一行读取n
    f = parseInt(line.trim())
  } else if (count == 0) {
    [n, k] = line.split(' ').map(item => Number(item))
    count++;
  } else if (count == 1) {
    arr = line.split(' ').map(item => Number(item))
    let path = Array.from(new Set(arr));
    let num = n % k;
    if (path.length < num) {
      console.log('No')
    } else {
      console.log('Yes')
    }
    count = 0;
  }
});
